package com.bl.student.service.biz.task;

import com.bl.student.dao.model.TaskEntity;
import com.bl.student.dao.redis.model.UserInfo;
import com.bl.student.service.vo.DelBody;
import com.bl.student.service.vo.DelListBody;
import com.bl.student.service.vo.comment.CommentAddVo;
import com.bl.student.service.vo.confirm.ConfirmAddVo;
import com.bl.student.service.vo.confirm.ConfirmListVo;
import com.bl.student.service.vo.confirm.ConfirmRefundVo;
import com.bl.student.service.vo.task.*;
import org.springframework.data.domain.Pageable;

import java.math.BigDecimal;

public interface TaskService {

    //  api 甲方任务列表
    TaskListVo getTaskListsPartya(String partyaid, String status, Pageable pageable);

    // api 乙方方任务列表
    TaskListVo getTaskListsPartyb(String partybid, String status, Pageable pageable);

    // api add task
    void add(String partyaid, TaskAddVo taskAddVo);

    // api manager mod task
    void modify(TaskModVo taskModVo);

    // api 任务详情 若当前是乙方，需要给出乙方是否已经申请，pre状态的需要给出申请乙方列表
    TaskDetailAVo getTaskDetail(String id, UserInfo usertype, double longitude, double latitude);

    // api manager 任务条件筛选
    TaskListVo getTaskListsMulti(String classc, String classb, String classa, String online, String sex, String price, String language, String grade, String college,
                                 String type, String star, String location, String time, String count, String role, String chinese, String env, String t_sex,
                                 Pageable pageable, String status, double longitude, double latitude, String buyType, String runType, String sortType);

    // api 推荐任务列表

    // api 乙方确认完成
    void confirm(ConfirmAddVo confirmAddVo, String userId);

    // api 甲方确认完成
    void addComment(CommentAddVo commentAddVo, String userId);

    void addCommentList(String taskId, String userId);

    // 甲方拒绝
    void refuse(DelBody body);

    // 甲方拒绝
    void refund(ConfirmRefundVo body);

    // api 甲方删除PRE状态任务
    void del(DelBody id , String partyaId);

    void delList(DelListBody idList);

    // 验收历史记录
    ConfirmListVo confirmList(String taskId);


}
